package com.hung.triple.registry;

import com.hung.triple.consumer.ConsumerBeanInfo;

import java.util.List;

/**
 * 服务注册与发现
 *
 * @author Hung
 * @since 2022/9/18
 */
public interface Register {

    /**
     * 服务注册
     */
    void register(List<ProviderBeanInfo> beans) throws Exception;

    /**
     * 服务发现
     */
    void discover(List<ProviderBeanInfo> beans) throws Exception;


    /**
     * 监听器注册
     */
    void subscribe(ConsumerBeanInfo consumerBeanInfo);

    /**
     * 监听器反注册
     */
    void deSubscribe(List<ConsumerBeanInfo> consumerBeanInfos);

    /**
     * 监听器反注册
     */
    void deSubscribe(ConsumerBeanInfo consumerBeanInfo);

    void deRegister(List<ProviderBeanInfo> beans);

    void deRegister(ProviderBeanInfo bean);


}
